/**
 * 抽象模块
 * 
 * @class Tm.common.Module
 * @extends Ext.util.Observable
 */
Ext.ns('Tm.common');
Tm.common.Module = Ext.extend(Ext.util.Observable, {

			/**
			 * 模块ID
			 * 
			 * @type String
			 */
			id : 'abstract',
			/**
			 * 模块的名称
			 * 
			 * @type String
			 */

			name : 'Abstract',

			/**
			 * 本模块所有的js文件
			 * 
			 * @type Array
			 */

			scriptFiles : [],

			init : function() {
				var loadingMessage = Ext.MessageBox.show({
							msg : 'Loading ' + this.name
									+ ' module, please wait...',
							progressText : 'loading...',
							width : 360,
							wait : true,
							waitConfig : {
								interval : 100
							}
						});

				Ext.Loader.load(this.scriptFiles, function() {
							loadingMessage.hide();
							this.afterInit();
						}, this, false);
			},
			constructor : function(config) {
				Ext.apply(this, config);
				Tm.common.Module.superclass.constructor.call(this);
				this.init();
			},
			afterInit:Ext.emptyFn
		});